In a wireless communication system, it is desirable for the system to maintain a high quality of service. One aspect of quality of service is the latency, or latencies, experienced by subscribers as they perform various tasks, such as surfing the web, initiating a push-to-talk (PTT) session, or initiating a voice over Internet Protocol (VoIP) call. For instance, the latency associated with initiating a VoIP call might be measured from the time the subscriber presses a “talk” button on his or her wireless communication device (WCD), to the time that the subscriber hears an indication that the VoIP call is connected, such as a ringing tone. If a subscriber experiences latencies that are too high, the subscriber may become frustrated with the service, which could lead them to complain about the service or even cancel the service. In order to maintain and expand its customer base, an operator of a wireless communication system may try to minimize the latency experienced by subscribers as much as possible. As more traditionally circuit-switched applications, such as PTT and voice telephony, are ported to packet-switched data networks, the operator needs to carefully manage the resources of the data networks to ensure that the latencies experienced by subscribers do not have a deleterious impact on the subscribers' perception of the operator's service.
Many wireless access networks comprise a radio access network (RAN) and a core network. The RAN includes base transceiver stations (BTSs), base station controllers (BSCs) and other devices that allow wireless communication devices (WCDs) to benefit from wireless data access. The core network includes a plurality of access gateways and other devices that route and manage packet data traffic. A function of the RAN is to select an appropriate access gateway for each incoming call from a WCD.
One method of access gateway selection, as described in Section 3.17.3 of the Third Generation Partnership Project 2 (3GPP2) specification entitled, “Interoperability Specification (IOS) for cdma2000 Access Network Interfaces—Part 3 Features,” is as follows. The RAN maintains a list of candidate access gateways. Each access gateway in the list is typically indexed by one of the access gateway's IP addresses. For an access gateway list with N entries, the entries are sorted in ascending order of their IP addresses, and then numbered 0 to N−1 according to this sorted order.
Each WCD is assigned an International Mobile Subscriber Identity (IMSI), which is a unique number associated with the WCD, typically taking the form of the WCD's phone number. When an incoming call from a WCD arrives, the RAN extracts the four least significant digits from the WCD's IMSI and performs a modulo N hash function on these digits. The resulting number, which will be an integer between 0 and N−1 inclusive, is used to index the list of IP addresses. The access gateway with the IP address associated with the integer is selected to serve the incoming call, and the incoming call is then routed from the WCD to that access gateway. If the RAN determines that an access gateway is non-responsive or if an access gateway transmits an error message to the RAN, the RAN may remove the access gateway from the list.
This method attempts to balance the number of WCDs assigned to each access gateway through the use of the hash function. However, in doing so, the RAN does not take into account the current latency, or any other performance factors, of each access gateway.